package 课程设计报告_hb_7_7;

/**
 * 线程的特点：
 * 
 * 代码执行的时候，两个线程，一个是自定义线程，一个是main线程
 * 两者被调用时结果是交叉且不固定的
 * 
 * @author Jiang Zhiyan
 *
 * 2021年7月7日 上午11:08:00
 *
 */
public class ThreadTest {
 //  main方法启动main线程
	public static void main(String[] args) {
//		1、实例化ThreadA
		ThreadA ta = new ThreadA("T1");
//		设置线程的优先级必须在线程启动之前设置
		ta.setPriority(Thread.MAX_PRIORITY);
 //		2、启动线程必须使用start方法，启动自定义线程
		/*
		 * 调用start方法，只是表示该线程进入到一种就绪状态，等待CPU调度
		 */
		 ta.start();
		 System.out.println("自定义线程的优先级："+ ta.getPriority());
		 
		 for(int i=0;i<100;i++) {
//			 Thread.currentThread()获得当前正在执行线程的引用
			 System.out.println(Thread.currentThread().getName() + "i=" + i+ " "+ Thread.currentThread().getPriority());
			 }
//		 代码执行的时候，两个线程，一个自定义的线程，一个是main线程
	}
}
/*
 * 定义一个线程
 * 
 * 1、定义一个类继承Thread
 * 
 * 2、重写run方法，定义线程的功能
 * 
 */
class ThreadA extends Thread{
	private String name;
	public ThreadA(String name) {
		
	}
	 @Override
	 public void run() {
		 for(int i=0;i<100;i++) {
			 System.out.println("TthreadA = " +i);
		 }
	 }
}